/**
 * 
 */
package br.com.livraria.dao.impl;

import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import br.com.livraria.dao.AbstractDao;
import br.com.livraria.dao.LivroDao;
import br.com.livraria.dao.UsuarioDao;
import br.com.livraria.vo.Autor;
import br.com.livraria.vo.Editora;
import br.com.livraria.vo.Livro;
import br.com.livraria.vo.Usuario;

/**
 * @author Jeferson
 *
 */
public class UsuarioDaoImpl extends AbstractDao implements UsuarioDao {

	/* (non-Javadoc)
	 * @see br.com.livraria.dao.LivroDao#incluir(br.com.livraria.vo.Livro)
	 */
	public void cadastrar(Usuario usuario) {
		try {
			Connection con = open();
			
			PreparedStatement preparedStatement =
					con.prepareStatement("INSERT INTO usuario (email, senha, nome, telefone) VALUES (?, ?, ?, ?)");
			
			preparedStatement.setString(1, usuario.getEmail());
			preparedStatement.setString(2, usuario.getSenha());
			preparedStatement.setString(3, usuario.getNome());
			preparedStatement.setInt(5, usuario.getTelefone());
			
			preparedStatement.executeUpdate();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			close();
		}
	}

	/* (non-Javadoc)
	 * @see br.com.livraria.dao.LivroDao#alterar(br.com.livraria.vo.Livro)
	 */
	public void alterarSenha(Usuario usuario) {
		try {
			Connection con = open();
			
			PreparedStatement preparedStatement =
					con.prepareStatement("UPDATE usuario SET senha = ? WHERE id = ? ");
			
			preparedStatement.setString(1, usuario.getSenha());
			
			preparedStatement.executeUpdate();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			close();
		 }
		}
	@Override
	public Usuario consultarPorId(Integer id) {
		Usuario usuario = new Usuario();
		try {
			Connection con = open();
			PreparedStatement pst = con.prepareStatement("SELECT * FROM usuario WHERE id = ?");
			
			pst.setInt(1, id);
					
			ResultSet rs = pst.executeQuery();
			
			while (rs.next()) {
				usuario.setId(rs.getInt("id"));
				usuario.setEmail(rs.getString("email"));
				usuario.setSenha(rs.getString("senha"));
				usuario.setNome(rs.getString("email"));
			    usuario.setTelefone(rs.getInt("telefone"));
			}
			
			
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			close();
		}
		
		return usuario;
	}

}

